#include <iostream>
using namespace std;

//实验得出三种继承之间的关系
//在private,public和protect继承中派生类都可以实现对于基类中的非private成员的访问
//在private继承中，派生类对象不能够实现对于基类任意成员的访问
//在public继承中，派生类对象只可以实现public成员的访问
//在protect继承中，派生类对象也不能实现对于基类成员的访问
//继承得到的成员属性取决与是什么继承
class Point{
public:
    Point(int x,int y)
    :_x(x)
    ,_y(y)
     {

     }
private:
    void print1(){
        cout<<"Point"<<endl;
    }
public:
    void print2(){
        cout<<_x<<_y<<endl;
    }
int _x;
int _y;
};
class Point3d:protected Point{
public:

    Point3d(int x,int y,int z)
    :Point(x,y)
    ,_z(z)
    {

    }
    void print(){
        cout<<_x<<_y<<_z<<endl;
    }
private:
    int _z;
};
void test(){
    Point3d p3d(1,2,3);
    p3d.print1();
    p3d.print2();
    p3d.print();
}
int main(int argc, char * argv[]){
    test();
    return 0;
}

